本文以推荐标签latest为例,执行以下命令拉取最新版镜像:展开代码语言:BashAI代码解释dockerpullxxx.xuanyuan.run/library/eclipse-temurin:latest 可通过轩辕镜像标签列表https://xuanyuan.cloud/r/library/eclipse-temurin/tags查看所有可用标签,选择时需考虑:生产环境建议使用具体版本标签(如21.0.2 ,验证Java环境:展开代码语言:BashAI代码解释dockerrun-it--rmxxx.xuanyuan.run/library/eclipse-temurin:latestjava-version 定期更新镜像:关注轩辕镜像文档https://xuanyuan.cloud/r/library/eclipse-temurin获取安全更新,及时升级以修复漏洞。 镜像拉取:eclipse-temurin采用dockerpullxxx.xuanyuan.run/library/eclipse-temurin:{TAG}格式,推荐使用具体版本标签确保稳定性。
以下步骤以使用最广泛的eclipse-temurin为例,其他替代镜像的操作逻辑一致。 :21-jre-ubuntu-jammydockerpulldocker.xuanyuan.run/eclipse-temurin:21-jre-ubuntu-jammy开发编译(Alpine轻量)eclipse-temurin :17-jdk-alpine3.22dockerpulldocker.xuanyuan.run/eclipse-temurin:17-jdk-alpine3.22最新LTS版(默认Ubuntu)eclipse-temurin :latestdockerpulldocker.xuanyuan.run/eclipse-temurin:latest开发编译(Ubuntu)eclipse-temurin:11-jdk-ubuntu-jammydockerpulldocker.xuanyuan.run /eclipse-temurin:11-jdk-ubuntu-jammy轻量运行JAR包(Alpine)eclipse-temurin:21-jre-alpine3.22dockerpulldocker.xuanyuan.run
上面还有一个 Eclipse Temurin 下载,你可能就有点困惑,我到底要下载那一个了。 Eclipse Temurin 使用的是 Hotspot 的虚拟机。 IBM Semeru 使用的是 OpenJ9 的虚拟机。 可以说没有 IBM 就没有 Eclipse,Eclipse 就是 IBM 成立的,但是 Eclipse 又是独立运作的,捐献出去的东西也和 IBM 没有什么太大关系了。 Eclipse Temurin 提供 OpenJDK + Hotspot 映像,IBM Semeru Runtimes 将提供 OpenJDK + Eclipse OpenJ9 映像的开放和认证 (JCKed 简单总结下就是,如果你希望: OpenJDk + HotSpot 虚拟机: 下载 Eclipse Temurin 或者 RedHat 版本。
为了给你一个基础镜像大小的概念,以下是openjdk:17-jdk-slim(瘦身版)和eclipse-temurin:17-jdk-alpine镜像大小的比较:已知应用程序(jar)的大小约为20MB 使用 eclipse-temurin:17-jdk-alpine 作为基础镜像。 AS jre-builder3 |4 | # Install binutils, required by jlinkERROR: failed to solve: eclipse-temurin:17 在第一阶段,我们使用 eclipse-temurin:17-jdk-alpine 镜像来使用 jlink 构建自定义JRE镜像。 在 Dockerfile 中自动化该过程Dockerfile.jlink-with-jdeps.temurin# 第一阶段,构建自定义 JREFROM eclipse-temurin:17-jdk-alpine
以下是基于不同场景的配置示例: 案例1:Spring Boot JAR应用 # 使用官方OpenJDK镜像作为基础 FROM eclipse-temurin:17-jdk-jammy # 设置工作目录 app.jar # 暴露应用端口(根据实际修改) EXPOSE 8080 # 启动命令 ENTRYPOINT ["java", "-jar", "app.jar"] 案例2:传统Java SE应用 FROM eclipse-temurin run -p 8080:8080 -d java-image-name -p:端口映射(主机端口:容器端口) -d:后台运行 优化建议 多阶段构建 减少最终镜像大小,丢弃构建阶段的依赖: FROM eclipse-temurin /gradlew build FROM eclipse-temurin:17-jre WORKDIR /app COPY --from=builder /app/build/libs/app.jar
0.0s => ERROR [internal] load metadata for docker.io/library/eclipse-temurin 1.6s =>[auth] library/eclipse-temurin 0.0s ------ >[internal] load metadata for docker.io/library/eclipse-temurin :24-jre: ------ Dockerfile:1 -------------------- |>>> FROM eclipse-temurin:24-jre |ADD container-java.jar 最后,我用Scala写了个程序打包成container,部署成功之后,运行效果如下: 用的Dockerfile也贴下供参考(偷懒,直接把Scala项目的onejar拿过来打包的): FROM eclipse-temurin
FROM eclipse-temurin:17 as build ARG MAVEN_VERSION=3.8.5 ARG BASE_URL=https://downloads.apache.org/maven RUN mvn clean package COPY target/*.jar app.jar FROM eclipse-temurin:17-jre-alpine as production COPY 还有另一个提供商 Adoptium(以前称为 AdoptopenJDK),在他们的 Java 版本下,称为 Temurin,它仍然提供 JRE 镜像。 你可以找到一篇关于他们的决定的好文章 https://blog.adoptium.net/2021/12/eclipse-temurin-jres-are-back/.因此,我开始使用temurin。
最新的最佳实践是采用Multi-stage构建结合JRE精简: # 第一阶段:构建应用 FROM maven:3.8.6-eclipse-temurin-17 AS builder WORKDIR /app /src RUN mvn package -DskipTests # 第二阶段:运行时环境 FROM eclipse-temurin:17-jre-alpine WORKDIR /app COPY - 构建多模块微服务镜像 对于多模块Spring Boot项目,可在父模块添加Docker构建配置: # 父模块Dockerfile FROM maven:3.8.6-eclipse-temurin-17 RUN mvn -pl module1,module2 clean package -DskipTests # 服务1镜像 FROM eclipse-temurin:17-jre-alpine WORKDIR from=builder /app/module1/target/*.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] # 服务2镜像 FROM eclipse-temurin
中应该使用 eclipse-temurin[1] 用户下的相关镜像。 SpringBootGracefulShutdownExample-0.0.1-SNAPSHOT.jar Dockerfie.bad: 使用 bash 启动脚本, 这会导致终止信号无法传递 FROM eclipse-temurin Dockerfile.bash-c: 采用 bash -c 执行, 在命令简单情况下可以做到优雅关闭 FROM eclipse-temurin:11-jdk COPY entrypoint.bad.sh 比如下面的例子: Dockerfile.tini: 加了 tini 也无法优雅关闭的情况 FROM eclipse-temurin:11-jdk RUN set -e \ && apt update 引用链接 [1] eclipse-temurin: https://hub.docker.com/_/eclipse-temurin [2] ibm-semeru-runtimes: https://hub.docker.com
中应该使用 eclipse-temurin[1] 用户下的相关镜像。 也有很多方法; 比如常见的直接使用 CMD 或 ENTRYPOINT 指令运行 java 程序: Dockerfile.direct: 直接运行 java 程序, 能够正常接受到终止信号 FROM eclipse-temurin Dockerfile.bash-c: 采用 bash -c 执行, 在命令简单情况下可以做到优雅关闭 FROM eclipse-temurin:11-jdk COPY entrypoint.bad.sh 比如下面的例子: Dockerfile.tini: 加了 tini 也无法优雅关闭的情况 FROM eclipse-temurin:11-jdk RUN set -e \ && apt update 引用链接 [1]eclipse-temurin: https://hub.docker.com/_/eclipse-temurin [2]ibm-semeru-runtimes: https://hub.docker.com
FROM eclipse-temurin:17 as build ARG MAVEN_VERSION=3.8.5 ARG BASE_URL=https://downloads.apache.org/maven RUN mvn clean package COPY target/*.jar app.jar FROM eclipse-temurin:17-jre-alpine as production COPY 还有另一个提供商 Adoptium(以前称为 AdoptopenJDK),在他们的 Java 版本下,称为 Temurin,它仍然提供 JRE 镜像。 你可以找到一篇关于他们的决定的好文章 Eclipse Temurin JREs are back! | Adoptium.因此,我开始使用temurin。
Container Images FROM eclipse-temurin:17-jre as builder WORKDIR application ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} application.jar RUN java -Djarmode=layertools -jar application.jar extract FROM eclipse-temurin
一、参考链接 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) eclipse镜像-eclipse下载地址-eclipse安装教程-阿里巴巴开源镜像站 (aliyun.com ) https://www.eclipse.org/ 二、Eclipse简介 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。 幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 四、Eclipse使用 1、调整eclipse字体大小 2、按“shift+alt+x”组合键,调出运行框,接着按“J”键启动运行代码。 3、导入Java Project项目文件夹 一般选择将Java Project项目文件夹统一放置eclipse-workspace中,便于管理使用。
AdoptOpenJDK (Adoptium) Adoptium 提供的 Eclipse Temurin 是一个免费的、开源的 JDK 发行版,由一个广泛的社区支持,非常稳定和可靠。 特点: 社区支持,稳定可靠 提供定期更新和安全补丁 支持多种平台 安装示例: sudo apt update sudo apt install temurin-17-jdk 2. apt install liberica-jdk-17 表格总结 替代方案 提供商 主要特点 安装命令 AdoptOpenJDK Adoptium 社区支持,稳定可靠 sudo apt install temurin
# 第一阶段:构建阶段 FROM maven:3.9-eclipse-temurin-17 AS builder WORKDIR /build COPY pom.xml . # 利用层缓存,先只复制pom /src RUN mvn clean package -DskipTests # 第二阶段:运行阶段 FROM eclipse-temurin:17-jre-jammy RUN groupadd -r FROM eclipse-temurin:17-jre-jammy # 使用非root用户运行 RUN groupadd -r spring && useradd -r -g spring spring FROM eclipse-temurin:17-jre-jammy ARG JAR_FILE=target/*.jar ARG PROFILE=dev COPY ${JAR_FILE} app.jar 实际构建示例 让我们通过一个完整的Spring Cloud Config Server的Dockerfile示例来总结: # 多阶段构建示例 FROM maven:3.9-eclipse-temurin
Dockerfile配置# 基础镜像FROM eclipse-temurin:17-jdk-alpine# 设置工作目录WORKDIR /app# 复制依赖文件COPY mvnw .COPY .mvn -DskipTestsRUN mkdir -p target/dependency && (cd target/dependency; jar -xf ../*.jar)# 创建运行时镜像FROM eclipse-temurin JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin
于是我们输入要求:"优化该 Spring Boot 项目 Dockerfile,减少镜像体积和启动时间" AI 输出方案: # 第一阶段:构建阶段(使用 Maven 官方镜像) FROM maven:3.9.6-eclipse-temurin application.properties 中添加: spring.main.lazy-initialization=true 最终优化版 Dockerfile: # 构建阶段 FROM maven:3.9.6-eclipse-temurin
利用中文插件,我们可以更加直观的理解Eclipse SVN 的功能 ,下面为配置具体步骤: 1,、下载中文插件包,我已经给准备好了,点击打开链接 已经给准备好了 2、找到Eclipse开发工具的下的
我现在用的都是eclipse-temurin这个Java基础镜像, 这也是Docker官方提供的. 使用统一的定制基础镜像 有时候你可能需要在基础镜像基础之上,添加一些定制的能力或功能. FROM my-company/base-java:17.0.3 比如,构建了一个基于eclipse-temurin的自己的定制基础镜像. FROM eclipse-temurin:17.0.6_10-jre RUN useradd -ms /bin/bash lingen USER lingen 定义一个用户是非常简单的, 如上代码所示.
最近在玩android,用的是eclipse。 对用习惯了myeclipse 的自动补全的程序员,突然发现没这玩意, 觉得不好使,于是对eclipse进行了设置,按照老办法在preferrence中keys进行了设置。 具体方法如下: eclipse自补全失效的解决办法: 1. 先检查自动补全的快捷方式是否设置正确。如下图所示: 2.